import { createApp } from 'vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
import App from '@/App.vue'
import router from '@/router'

// 全局样式
import 'virtual:uno.css'
import '@/styles/var.less'
import '@/styles/mixin.less'
import '@/styles/global.less'
import ElementPlus from 'element-plus'
import {} from 'element-plus'
// 样式
import "element-plus/theme-chalk/dark/css-vars.css";
import 'element-plus/theme-chalk/index.css'
// 如果您正在使用CDN引入，请删除下面一行。
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import {usePermissionStore} from '@/stores'
// 创建 Pinia 实例
const pinia = createPinia()


/**
 * Pinia 支持功能扩展，例如本地持久化功能
 *
 * 在命令行运行 `npm i pinia-plugin-persistedstate` 安装持久化插件
 * 在本文件里导入 `import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'`
 * 取消注释下方的这行 `pinia.use` 代码启用插件，并根据文档对单个 Store 启用配置
 *
 * @see https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/
 */
pinia.use(piniaPluginPersistedstate)



const app = createApp(App);
app.use(ElementPlus)
app.use(pinia) // 启用 Pinia
await init()
app.use(router)
app.mount('#app')
//注册icons
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
  }
app.config.globalProperties.$router = router;
async function init() {
  //一开始可以初始为空
  //初始化路由，可以判断登录人和路由信息，登录了可以从缓存里面取
  await usePermissionStore().initMenu(router)
  console.info("初始数据-------")
}
